package cn.gson.crm.model.mapper;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import cn.gson.crm.model.entity.BedRoom;
import cn.gson.crm.model.entity.Classes;
import cn.gson.crm.model.entity.Student;

@Mapper
public interface BedroomMapper {
	List<BedRoom> list(BedRoom bedroom);
	
	/**
	 * 查询全部寝室
	 * @return
	 */
	List<Map<String, Object>> selectAllBedroom();
	

	/**
	 * 根据id查出对应寝室所有学员的信息
	 * @param student
	 * @param id
	 * @return
	 */
	List<Student> studentList(Student student,Long id);
	
	/**
	 * 根据id查询学员
	 * @param id
	 * @return
	 */
	List<Map<String, Object>> studentListById(Long id);
	
	/**
	 * 根据寝室id查询学员性别
	 * @param id
	 * @return
	 */
	List<Map<String, Object>> studentGenderListById(Long id);
	
	
	/**
	 * 根据寝室id查询寝室的信息
	 * @param id
	 * @return
	 */
	BedRoom selectIdbedroommessage(Long id);
	
	
	/**
	 * 查出所有的待分寝的学员
	 * @return
	 */
	List<Student> selectNoDormStudents();
	
	/**
	 * 根据性别查所有待分寝的学员
	 * @param gender
	 * @return
	 */
	List<Student> selectNoDormStudentes(String gender);
	
	/**
	 * 根据寝室类型查询所有空余的寝室 
	 */
	List<BedRoom> selectNewBedroom(String bedroomType,Long bedroomId);


	
	
	int countBedroomName(@Param("name")String name);
	/**
	 * 修改寝室
	 * @param br
	 */
	void editBedRoom(BedRoom br);

	/**
	 * 根据学员id删除学员
	 * @param id
	 */
	void deleteStudent(Long id);
	
	/**
	 * 根据寝室id删除所有学员
	 * @param id
	 */
	void deleteAllStudent(Long id);
	
	/**
	 * 添加一个寝室成员
	 * @param saveParams
	 */
	void saveOneStudentToDorm (Map<String, Object> saveParams);
	
	/**
	 * 添加多个学员
	 * @param saveParams
	 */
	void saveDormOrStudent(Map<String, Object> saveParams);
	
	
}
